#include "mypushbutton.h"
#include <QDebug>
#include <QPropertyAnimation>


MyPushButton::MyPushButton(QWidget *parent) : QPushButton(parent)
{

}

MyPushButton::MyPushButton(QString normalImg, QString pressImg)
{
    this->normalImgPath = normalImg;
    this->pressImgPath = pressImg;

    QPixmap pix;
    bool ret = pix.load(normalImg);
    if (!ret)
    {
        qDebug() << "图片加载失败！";
        return;
    }

    this->setFixedSize(pix.width(), pix.height());

    //设置不规则大小
    this->setStyleSheet("QPushButton{border:0px;}");

    this->setIcon(pix);
    this->setIconSize(QSize(pix.width(), pix.height()));

}

void MyPushButton::zoomTop()
{
    //创建动态对象
    QPropertyAnimation * animation = new QPropertyAnimation(this, "geometry");
    animation->setDuration(200);
    //起始位置
    animation->setStartValue(QRect(this->x(),this->y()-10,this->width(),this->height()));

    //结束位置
    animation->setEndValue(QRect(this->x(),this->y(),this->width(),this->height()));

    animation->setEasingCurve(QEasingCurve::OutBounce);

    animation->start();
}

void MyPushButton::zoomBottom()
{
    //创建动态对象
    QPropertyAnimation * animation = new QPropertyAnimation(this, "geometry");
    animation->setDuration(200);
    //起始位置
    animation->setStartValue(QRect(this->x(),this->y(),this->width(),this->height()));

    //结束位置
    animation->setEndValue(QRect(this->x(),this->y()+10,this->width(),this->height()));

    animation->setEasingCurve(QEasingCurve::OutBounce);

    animation->start();
}

void MyPushButton::mousePressEvent(QMouseEvent * e)
{
    if (!this->pressImgPath.isEmpty())
    {
        QPixmap pix;
        bool ret = pix.load(this->pressImgPath);
        if (!ret)
        {
            qDebug() << "图片加载失败！";
        }

        this->setFixedSize(pix.width(), pix.height());

        //设置不规则大小
        this->setStyleSheet("QPushButton{border:0px;}");

        this->setIcon(pix);
        this->setIconSize(QSize(pix.width(), pix.height()));

    }

    QPushButton::mousePressEvent(e);
}

void MyPushButton::mouseReleaseEvent(QMouseEvent *e)
{
    if (!this->pressImgPath.isEmpty())
    {
        QPixmap pix;
        bool ret = pix.load(this->normalImgPath);
        if (!ret)
        {
            qDebug() << "图片加载失败！";
        }

        this->setFixedSize(pix.width(), pix.height());

        //设置不规则大小
        this->setStyleSheet("QPushButton{border:0px;}");

        this->setIcon(pix);
        this->setIconSize(QSize(pix.width(), pix.height()));

    }

    QPushButton::mouseReleaseEvent(e);
}
